/* 
Response对象是路由回调函数中的第二个参数，代表了服务器发送给用户的响应信息。
通过Response对象可以设置响应报文中的各个内容，包括响应行, 响应头和响应体。

常用的属性和方法
res.send(data)           返回响应体(自动设置为html/json格式)
res.json(data)           返回响应体(自动设置为json格式)
res.sendFile(filePath)   返回指定文件
res.redirect(url)        重定向到一个新的地址
res.download(filePath)   告诉浏览器下载指定文件
*/

// 引入express
const { response } = require('express')
const express = require('express')

const app = express()


app.use(express.static('public'))

// 注册路由
app.get('/response', (req, res) => {

  // 一般不这样操作
  // res.statusCode = 201
  // res.statusMessage = 'my created'


  // send(data): 指定返回的响应体数据
  // 自动指定Content-Type响应头
  // data是string:   application/html;charset=utf-8
  // data是object/array application/json;charset=utf-8


  // let data = '响应数据'
  // data值可以是对象和数组
  // data = {id: 1, name: '张三'} 
  // data = [123, '张三']
  // res.send(data)



  // json(data): 指定返回的响应体数据
  // 自动指定Content - Type响应头: application / json; charset = utf - 8
  // res.json(data)


  
  // sendFile(filePath) 返回指定文件内容
  // res.sendFile(__dirname + '/02.test.html')



  // download(filePath)   告诉浏览器下载指定文件
  res.download(__dirname + '/02.test.html')



  // 跳转到百度
  // res.redirect('http://www.baidu.com')

})

//
app.listen('8801', () => {
  console.log('服务已启动: http://localhost:8801')
})